// 导入验证规则模块
const joi = require('joi')

// 验证规则
/**
 * string() 必须为字符串
 * alphanum() 只能包含a-zA-Z0-9的字符串
 * min(length) 最小长度
 * max(length) 最大长度
 * required() 必填项 不能为undefined
 * pattern(正则表达式) 必须符合正则表达式的规则
 */

// 定义用户名和密码的验证规则
const username  = joi.string().alphanum().min(1).max(10).required()
const password = joi.string().pattern(/^[\S]{6,15}$/).required()
const usertype = joi.string().required()

// 定义用户id，nick_name,email的验证规则
const id = joi.number().integer().min(1).required()
const nickname = joi.string().required()
const email = joi.string().email().required()

// 定义头像的验证规则
// dataUri指的是验证是否位base64格式的字符串
const user_pic = joi.string().dataUri().required()

// 登录的验证规则
exports.login_schema = { 
    body:{
        username,
        password,
        usertype
    }
}

// 注册的用户名和密码的验证规则
exports.reg_login_schema = {
    body:{
        username,
        password
    }
}

// 更新用户信息的验证规则
exports.updateuserinfo_schema = {
    body:{ 
        nickname,
        email
    }
}

// 修改密码的新旧密码的验证规则
exports.updatepwd_schema = { 
    body:{ 
        oldPwd:password,
        newPwd:joi.not(joi.ref('oldPwd')).concat(password)
    }
}
  
exports.updateAvatar_schema = { 
    body:{ 
        user_pic
    }
}